@echo off

:: 波导模拟全流程自动化脚本
:: 包含：编译 -> 运行 -> 绘图

echo ===== 波导电磁场模拟自动化脚本 =====

:: 创建必要的目录
echo [1/5] 创建必要的目录...
mkdir data temp waveguide_plots 2>nul

:: 清理旧的数据文件
echo [2/5] 清理旧的数据文件...
del /Q data\*.csv 2>nul
del /Q temp\temp_frame_*.png 2>nul
del /Q waveguide_plots\radial_plots\*.png 2>nul

:: 编译C++代码
echo [3/5] 编译波导模拟程序...
g++ coldplasma_main.cpp -I"C:/env/vcpkg/installed/x64-windows/include" -o coldplasma_main.exe -L"C:/env/vcpkg/installed/x64-windows/lib" -lgsl -lgslcblas
:: 检查编译是否成功
if %errorlevel% neq 0 (
    echo 编译失败！请检查错误信息。
    exit /b 1
)

echo 编译成功！

:: 运行模拟
echo [4/5] 运行波导模拟...
.coldplasma_main

:: 检查运行是否成功
if %errorlevel% neq 0 (
    echo 模拟运行失败！请检查错误信息。
    exit /b 1
)

echo 模拟完成！

:: 检查是否有输出文件
set file_count=0
for %%F in (data\field_*.csv) do set /a file_count+=1
if %file_count% equ 0 (
    echo 未找到模拟输出文件！请检查程序是否正确保存了数据。
    exit /b 1
)

echo 成功生成 %file_count% 个场数据文件。

:: 运行Python绘图脚本
echo [5/5] 生成可视化图像...
python plot_coldplasma.py

:: 检查绘图是否成功
if %errorlevel% neq 0 (
    echo 绘图失败！请检查错误信息。
    exit /b 1
)

echo 可视化完成！
echo 所有步骤已成功完成！

echo 结果文件位置:
echo - 场数据: data\field_*.csv
echo - 临时帧: temp\temp_frame_*.png
echo - 可视化结果: waveguide_plots\

echo 您可以使用以下命令查看结果:
echo   - 热图: start waveguide_plots\waveguide_heatmap.png
echo   - 3D表面图: start waveguide_plots\waveguide_3d_surface.png
echo   - 动画: start waveguide_plots\waveguide_animation.gif